#pragma once

#include <memory>

namespace nef {

template<typename IxType>
class type_factory
{
public:
	typedef std::shared_ptr<type_factory> Ptr;
	typedef std::shared_ptr<IxType> IxTypePtr;

	virtual ~type_factory() {}

	virtual IxTypePtr create() const = 0;
};

}